草庐IT

PHP in_array 通配符匹配

全部标签

javascript - 为什么 array.forEach(() => { array.pop() }) 不会清空数组

在nodejsREPL上,我试图清理一个定义为constarray=[...]的数组,然后发现使用array.forEach(()=>/pop|shift/())将不起作用。在这样的表达式之后,数组中仍会保存值。我很清楚清理数组的更好方法,比如array.splice(0),但我真的很好奇这种行为似乎违反直觉,至少对我而言.这是测试:consta=[1,2,3]a.forEach(()=>{a.shift()})console.log(a)//[3]constb=[1,2,3]b.forEach(()=>{b.pop()})console.log(b)//prints[1]注意事项起初

javascript - 为什么 new Array(4).join ("ha") 产生 "hahahaha"而不是 "undefinedhaundefinedha .."

为什么newArray(4).join("ha")产生“hahaha”而不是“undefinedhaundefinedha..“?vararr=newArray(4);alert(arr[0]);//produces`undefined` 最佳答案 undefined或null的数组元素被转换为空字符串。It'srightthereinthedocumentation.Ifanelementisundefinedornull,itisconvertedtotheemptystring.

javascript - 使用 forEach、[].forEach.call(...) 或 Array.prototype.slice.call(...).forEach 迭代类似数组的对象?

我们可以使用以下两种方法实现类数组对象的迭代:letarrayLike=document.getElementsByClassName('dummy');[].forEach.call(arrayLike,(e)=>{console.log(e);});Test1Test2或者先使用slice将类数组对象转换为数组:letarrayLike=document.getElementsByClassName('dummy');Array.prototype.slice.call(arrayLike).forEach((e)=>{console.log(e);});Test1Test2哪个更

javascript - 用于匹配仅由字母列表构成的单词的正则表达式

给定一组单词,我需要知道哪些单词仅由一组字母组成。这个词的字母不能超过允许的数量,即使这个字母是验证集的一部分也是如此。例子:Charset:a,a,ã,c,e,l,m,m,m,o,o,o,o,t(fixedset)Wordsset:mom,ace,to,toooo,ten,all,aaa(variableset)结果:mom=trueace=trueto=truetoooo=trueten=false(nisnotintheset)all=false(thereisonly1Lintheset)aaa=false(theresisonly2Aintheset)如何在Javascrip

javascript - 从需要的文件扩展 Node.js 中的 Array.prototype

我将以下内容保存在test.js中。它在浏览器中成功扩展了Array,但它似乎不适用于node和require。有人可以解释这里出了什么问题吗?(function(){Array.prototype.max=function(){returnconsole.log("Array.prototype.max");};returnArray.max=function(){returnconsole.log("Array.max");};}).call(this);然后,从终端:>My-MacBook-Pro:me$node>vartest=require("./test")>[1,2,3]

javascript - 现代浏览器如何实现 JS Array,具体是添加元素?

我的意思是,当调用Array对象上的.push()时,JavaScript会增加底层“数组”的容量(元素数量)。此外,如果有一个很好的资源可以为JS找到此类信息,那么将其包含在内会很有帮助。编辑看起来JSArray就像一个具有特殊属性的对象字面量。但是,我对较低层次的细节感兴趣——浏览器如何在各自的JS引擎中实现这一点。 最佳答案 这个问题不可能只有一个正确答案。数组的扩展机制是一个内部实现细节,并且可能因一个JS实现而异。事实上,Tamarin引擎有两种内部用于数组的不同实现,具体取决于它确定数组是顺序的还是稀疏的。

javascript - 访问 Array.forEach 中的未命名数组

在未命名数组上使用forEach循环时,有什么方法可以访问目标对象的长度属性吗?#I'dliketobeabletodosomethinglike:[1,2,3].forEach(n,i)->console.lognis 最佳答案 Array.forEach的回调采用树参数:值、索引、和正在遍历的数组。所以你可以这样做:[1,2,3].forEach(n,i,thearray)->console.lognisJavascript:[1,2,3].forEach(function(n,i,thearray){console.log(n

javascript - 使用javascript匹配字符串中任意长度字符的正则表达式?

我正在学习使用javascript进行正则表达式匹配,并且对下面描述的场景有疑问。我正在尝试验证电子邮件,条件如下:Formatshouldbexxx@yyy.zzzwhereA)"xxx","yyy"and"zzz"partscantakevaluesonlybetweenlowercaseaandzB)Thelengthofzzz,yyyandxxxpartsarearbitrary(shouldbeminimumonethough)现在我明白了我可以像这样构建正则表达式:编辑:更正的正则表达式/[a-z]+@[a-z]+\.[a-z]+/上面的代码会将像“aaa@aaa.aaa”

javascript - 始终在 jQuery 自动完成中显示特定选择,即使它与输入不匹配

我有一个jQuery自动完成功能(jqueryui版本1.8),我可以在其中键入一个名称。如果可用,我希望用户从列表中选择一个名称,因为这些是我们数据库中的所有者名称。但是,有时他们需要添加新的所有者名称,在这种情况下,我希望他们从自动完成的下拉列表中选择“添加新的”。问题是,如果我在自动完成源数据中包含“添加新”选项,它不会在自动完成下拉列表中显示为选项,因为它与用户在文本框中键入的内容不匹配。下面是javascript代码。我不包括服务器端代码,但假设服务器的结果在下拉列表中创建了一个列表,例如“添加新的、Betty、Bob、Cathy、Dan、Edward”。“选择器”是文本类型

javascript - 对象中数组的长度不匹配

我试图在D3中使用树层次结构,但卡住了。我以为我正在正确构建JSON,但是当我查看开发人员工具中的对象时,我看到以下内容:注意第一行显示dependents数组的长度为0,但展开后,您可以清楚地看到dependents有3个对象。当我对其进行字符串化时,我得到以下信息:{"attributes":{"id":0,"name":"root"},"dependents":[]}知道哪里出了问题吗?谢谢! 最佳答案 当您在记录对象后更改对象时通常会发生此问题,因为Chrome在您记录对象时不会深度复制该对象,而只是存储一个引用。树不会立即